#ifndef NCU_JEU
#define NCU_JEU

#include <ncurses.h>
#include "jeu.h"

/**
 * \file NCU_Jeu.h
 * \brief Interface en Ncurses
 * \author Thomas Gauvain
 * \date 04 Juin 2013
 *
 * Interface graphique du jeu "une retraite en enfer" en ncurses
 *
 */

/**
    \struct NCU_Jeu
    \brief Structure permettant le déroulement du jeu en ncurses

    La structure contient un jeu, une WINDOW permettant l'affichage et un float permettant de chronometrer une partie
    */
typedef struct
{
	Jeu J;
	WINDOW * winterrain;
	float debut_jeu;
} NCU_Jeu;




/**
    \brief Permet l'affichage du jeu (case, joueur,monstre,tir,objet,UI)
    \param WINDOW* win
    \param NCU_Jeu * J

    */
void NCU_Aff( WINDOW* win, NCU_Jeu *J);

/**
    \brief Permet l'affichage du menu
    \param WINDOW* win
    \param const NCU_Jeu * J

    */
void NCU_Menu(WINDOW* win, const NCU_Jeu *J);

/**
    \brief Boucle du jeu en ncurses
    \param [in] NCU_Jeu * J

    */
void NCU_Boucle(NCU_Jeu *J);

/**
    \brief Convertit la position x d'un element pour la mettre dans le répère du terrain
    \return La nouvelle position
    \param [in] double x
    \param [in] NCU_Jeu * J
    */
int NCU_changex(double x, NCU_Jeu * J);
/**
    \brief Convertit la position y d'un element pour la mettre dans le répère du terrain
    \return La nouvelle position
    \param [in] double y
    \param [in] NCU_Jeu * J

    Les nouveaux (x,y) correspondent alors à une case du terrain
    */
int NCU_changey(double y, NCU_Jeu * J);

/**
    \brief Determine la position d'un element dans une case
    \return un entier entre 1 et 3 pour la position dans la case
    \param [in] double x
    \param [in] NCU_Jeu * J
    */

int NCU_positioncasex(double x, NCU_Jeu * J);

/**
    \brief Determine la position d'un element dans une case
    \return un entier entre 1 et 3 pour la position dans la case
    \param [in] double y
    \param [in] NCU_Jeu * J

    Les cases sont rédivisé en 9 caractères
    Avec NCU_positioncasex et NCU_positioncasey ont détermine la position dans la case (exemple angle haut/gauche, centre, ligne du bas au milieu, ...)

    */
int NCU_positioncasey(double y, NCU_Jeu * J);


#endif

